前言:昨天Day07聊到函數的回傳值需要定義data type資料型態。
(關於如何區分資料型態請搭Day02直通車)
這大概是底層語言最有趣的部分之一了。
在function裡,有兩種parameter參數
講起來很繞口對不對,趕快來看以下範例:
       //這邊的int a, int b是形式上的參數    
int sum(int a, int b){
    return a + b;
}
int main(){
    sum(4, 2); //這裡稱為實際參數也是argument,實際的數字是這邊輸入
}
記得參數也要配上適當的資料型態data type,例如下面這樣就行不通:
int A(string a, string b){
    return a - b;
}
因為int A()表示只能輸出int,a - b也無法用string表示,如果在呼叫這個function時寫這樣A(apple, banana);,裡面是字串,會出現error。
也可以設定一個default parameter value,這樣沒有argument的時候就會自動執行。
void function(string city = "Taipei"){
    cout << city << endl;
}
int main(){
    function(); //會自動輸出Taipei喔
}
目標:用function記錄一天三餐吃了什麼,及總共多少錢。
(此為混合參數,參數的資料型態不同)
void mydiet(string breakfast, string lunch, string dinner, int price){
     cout << breakfast << ", " << lunch << ", " << dinner << ". Price = " << price;
}
     
int main(){
    mydiet("bacon and egg", "Pork fried rice", "dumplings", 300);
}
    
    Output:bacon and egg, Pork fried rice, dumplings. Price = 300
Reference: geeksforgeeks, CodeBeauty(Youtube), W3school